USB Device 升级


1. 升级方式类别

  • 空片 模式 usb device升级

  • uboot 模式 usb device 升级


2. 空片 模式 usb device升级

  • 需求场景

    已有完整pcb,有usb 接口,但是nandflash或norflash里面为空。

  • 实现原理

    1. IC上电先执行rom code

    2. 根据外部硬件配置跳转到nandflash/norflash中执行IPL

    3. 没有找到IPL资料,系统自动进入ufu的升级模式。通过pc tool 预加载u-boot.bin。

  • 此模式下要求

    预加载的u-boot.bin 本身具备ufu升级能力。

  • 操作步骤

    1. uboot配置

      将编译生成的u-boot_spinand.img.binu-boot.img.bin 重新命名u-boot.bin (仅仅用作空片引导)。下面操作流程会用到此文件。

    2. 按正常流程编译整包sdk,生成image升级文件。

    3. 下载工具包(此处nandflash为例)

      这里需要针对bulid的不同flash使用不同的工具包(相应的sdk中tools包含升级工具)

      SPINOR FLASH升级工具包:

      usbloadertool_onebin_spinor_20210104.rar
      

      SPINAND FLASH升级工具包:

      usbloadertool_onebin_spinand_20210104.rar.rar
      

      将对应的工具包解压到image路径下

    4. 将生成的u-boot.bin替换到此处。

    5. 空片模式上电,接入usb。可以观察到pc上有接入存储设备

    6. 执行USBDownloadTool-nopad.exe 正常情况下如图。

      通常系统正常升级后,可通过串口可以观察开机过程。


3. uboot 模式 usb device 升级介绍

  • 需求场景

    已有完整pcb,有usb 接口,确保系统可进入uboot模式

  • 实现原理

    norflash或nandfash里面已经有uboot。且此份uboot支持device模式下接pc升级,通过执行uboot和pc软件进行交互,完成下载升级

  • 此模式下要求

    uboot 本身具备ufu升级能力。

  • 操作步骤

    1. 配置uboot

      支持ufu升级,但是不开启自动运行。

    2. 将uboot烧录入flash。此boot具有ufu升级能力。

      如果需要在uboot来使用usb device升级功能:

      需要在boot模式下设定如下参数,开机会进入device升级模式。

      setenv ota_upgrade_status 1
      
      saveenv
      
    3. 下载工具包(此处nandflash为例)

      这里需要针对bulid的不同flash使用不同的工具包(相应的sdk中tools包含升级工具)

      SPINOR FLASH升级工具包:

      usbloadertool_onebin_spinor_20210104.rar
      

      SPINAND FLASH升级工具包:

      usbloadertool_onebin_spinand_20210104.rar.rar
      

      将对应的工具包解压到image路径下

    4. 重新上电开机后,系统进入如下。

    5. 执行USBDownloadTool-nopad.exe 开始升级


4. nandflash测试参考包

images-uboot.tar

images-blank.tar